home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 1: Comms & Networking / Almathera Ten on Ten - Disc 1: Comms & Networking.iso / amiga-useful / perl / t / op / regexp.t < prev    next >
Text File  |  1995-05-04  |  1KB  |  45 lines

  1. #!./perl
  2.  
  3. # $RCSfile: regexp.t,v $$Revision: 4.0.1.1 $$Date: 91/06/10 01:30:29 $
  4.  
  5. open(TESTS,'op/re_tests') || open(TESTS,'t/op/re_tests')
  6.     || die "Can't open re_tests";
  7. while (<TESTS>) { }
  8. $numtests = $.;
  9. close(TESTS);
  10.  
  11. print "1..$numtests\n";
  12. open(TESTS,'op/re_tests') || open(TESTS,'t/op/re_tests')
  13.     || die "Can't open re_tests";
  14. $| = 1;
  15. while (<TESTS>) {
  16. #    print "Test $.: \n";
  17.     ($pat, $subject, $result, $repl, $expect) = split(/[\t\n]/,$_);
  18. #    print "Line = $_\n";
  19. #    print "Parsed: $pat $subject $result $repl $expect\n";
  20.     $input = join(':',$pat,$subject,$result,$repl,$expect);
  21. #    print "Joined: $input\n";
  22.     $pat = "'$pat'" unless $pat =~ /^'/;
  23. #    print "Pat: $pat\n";
  24.     eval "\$match = (\$subject =~ m$pat); \$got = \"$repl\";";
  25.     if ($result eq 'c') {
  26.     if ($@ ne '') {print "ok $.\n";} else {print "not ok $.\n";}
  27.     }
  28.     elsif ($result eq 'n') {
  29.     if (!$match) {print "ok $.\n";} else {print "not ok $. $input => $got\n";}
  30.     }
  31.     else {
  32.     if ($match && $got eq $expect) {
  33.         print "ok $.\n";
  34.     }
  35.     else {
  36. #        print "  Result = $result\n";
  37. #        print "  Got = $got\n";
  38. #        print "  Expect = $expect\n";
  39. #        print "  Input = $input\n";
  40.         print "  not ok $. $input => $got\n";
  41.     }
  42.     }
  43. }
  44. close(TESTS);
  45.